A storage server is a special purpose processing system used to store and retrieve data on behalf of one or more clients on a network. A storage server operates on behalf of the one or more clients to store and manage shared data in a set of mass storage devices, such as magnetic or optical storage-based disks or tapes. A conventional storage server includes a storage operating system that implements a file system to logically organize data as a hierarchical structure of directories and files on the disks. A file system is any organization of data in a structured manner, which can be, but is not necessarily, organized in terms of a structured (e.g., hierarchical) set of stored files, directories and/or other types of data containers. Data stored by a storage server may be stored in the form of multiple blocks that each contains data. A block is the basic unit used by a file system in a storage server to manipulate and transfer data and/or metadata. In many systems, a block size of 4 KBytes is used, although other block sizes can also be used.
In conventional storage systems, the physical storage devices may be organized into one or more groups of disks (e.g., redundant array of inexpensive disks (RAID)). These disks, in turn, define an overall logical arrangement of storage space, including one or more storage volumes. A storage volume is any logical data set that is an abstraction of physical storage, combining one or more physical storage devices (e.g., disks) or parts thereof, into a logical storage object, and which is managed as a single administrative unit, such as a single file system. A volume may be defined from a larger group of available storage, such as an aggregate.
The physical storage device(s) underlying a storage volume may vary in different implementations. In some instances, a storage volume as described herein can be a flexible storage volume, i.e. a volume that is flexibly associated with the underlying physical storage device(s). In other instances, a storage volume as described herein can be a traditional volume, i.e., a volume that is mapped directly and inflexibly to the underlying physical storage device(s).
When a database is running on one or more of storage volumes, it may keep an online redo log that keep tracks every operation performed on the database, such as insertion, modification, or deletion of tables and/or data items in the database, for recovery purposes. The size of the online redo log is limited because the smaller the online redo log is, the less time it takes to start up the database in a case of recovery. Consequently, the online redo log is routinely overwritten when its size reaches a preset limit.
While keeping an online redo log, the database may run under either archive mode or no-archive mode. When running in archive mode, the database archives the online redo log either manually or automatically before the log is overwritten. When running in no-archive mode, online redo log can (and will) be overwritten without making sure it is saved, implying that the database cannot be recovered even if backups were made.